草庐IT

c++ - 对 mmap 和 munmap 的 undefined reference

我完全是UNIX项目编译的新手。我在使用Cygwin时需要帮助或建议。“MAKE”命令的一个错误让我心烦意乱:/player_module.cpp:96:undefinedreferenceto`mmap'/player_module.cpp:136:undefinedreferenceto`munmap'player_module.cpp包含:#include#include#include调用代码如下:dump_start=mmap(NULL,sb.st_size,PROT_READ,MAP_SHARED,fileno(file),0);munmap(dump_start,sb.s

c++ - boost iostreams 断言失败

我需要能够使用单个fstream以具有平台无关的文件使用方式。特别是,我需要能够在Windows上支持带有unicode字符的文件路径,同时尽可能减少对代码的侵入以支持它。因此,boostiostreams似乎可以提供答案。然而,在尝试使用它时,我遇到了两个让我担心的失败。请参阅以下示例代码://MinGW(MSYS)//GCC4.7.2//Boost1.50.0//g++-gifstreamtest.cpp-otest.exe-I/t/tools/boost/boost_1_50_0-L/t/tools/boost/boost_1_50_0/stage/lib-lboost_syst

c++ - 将网络字节顺序(大端)转换为小端

我从MSDN中找到了以下函数它将unsignedlong从网络字节转换为主机字节顺序的unsignedlong,即在little-endian中定义为:u_longWSAAPIntohl(_In_u_longnetlong);MSDN文档说它可以转换32位数字。但是因为在C++中,正如我所读到的那样long和int是不一样的,即long不能保证是32位或相同的大小一个整数INT_MAX。所以,我想知道是否有类似的函数采用32位值,例如unsignedint而不是unsignedlong? 最佳答案 documentation特别指出

c++ - Windows 8 SDK 中的 d3dx11.h

前言:我正在用VS2013做一个项目我试着#include但没有找到。我做了一些搜索,找到了这句话D3DXisnotconsideredthecanonicalAPIforusingDirect3DinWindows8andthereforeisn'tincludedwiththecorrespondingWindowsSDK.InvestigatealternatesolutionsforworkingwiththeDirect3DAPI.来自thispage然后我又做了一些搜索,找到了thisSOquestion我尝试了答案,但它最终打破了所有包含。是的,我已经做了一些搜索问题:你

c++ - 对有限数量的命令进行快速语音识别

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion有没有人有使用C++(Windows和/或Mac)编写有限数量的SPEED命令的语音识别编程经验?在这一点上,从第一个音节开始识别命令是否现实——即,命令在用户以相当快的语速进入第二个音节时被识别?所有命令都将被编程为以不同的音节开始,

c - 判断两个文件是否属于同一个卷

我在一些ntfs硬链接(hardlink)项目中工作。我想知道如何确定两个文件(具有完整路径)是否属于同一卷。 最佳答案 查找与文件关联的卷信息的几个选项:找到这两个文件的根路径,并使用GetVolumeInformation查找卷名称。打开文件句柄并将其传递给GetVolumeInformationByHandleW.请注意,GetVolumeInformationByHandleW需要Vista,即它在XP上不可用。通过比较卷序列号检查是否相等。 关于c-判断两个文件是否属于同一个卷

c++ - 尝试在 CAxWindow 中托管 WMP 时,IAxWinHostWindow CreateControl 返回 E_NOINTERFACE

我正在尝试在我的Win32应用程序中嵌入一个WMP控件。我在这里遵循了示例代码:HostingtheWindowsMediaPlayerControlinaWindowsApplication但是,当我单步执行这个示例时,该行:hr=spHost->CreateControl(CComBSTR(_T("{6BF52A52-394A-11d3-B153-00C04F79FAA6}")),m_wndView,0);返回E_NOINTERFACE;行:hr=m_wndView.QueryHost(&spHost);成功并且似乎正确填充了spHost。代码如下:CAxWindowm_wndVi

c++ - 从 32 位应用程序 Hook 64 位进程

我正在使用SetWindowHookEx将DLL加载到另一个进程中,但我需要能够挂接到32位和64位进程。我想我需要两个单独的DLL,但是我可以在不创建两个版本的“启动器”应用程序的情况下做到这一点吗?我需要将DLL句柄传递给SetWindowsHookEx,但我无法使用LoadLibrary获取它。 最佳答案 使用进程外COM+对象承载DLL。您可以使用此方法从32位调用64位代码,这样大多数启动器代码都保持不变,除了您决定加载32位或64位COM+对象的if语句。可以对该对象进行编码以将适当版本的DLL加载到进程中,一个用于64

c - Frama-C:在 Cygwin/Windows 8.1 上编译

对于那些在windows上编译C的人来说一个简单的问题!我想使用最新版本的Frama-CWindows8上的C静态分析器及其GUI。据我所知,具有Windows安装程序的最新版本是Boron,它已有3-4年的历史。所以看起来我需要自己编译它(版本Fluorine3)。然而,我在前几步绊倒了。Frama-CFluorine3的快速编译说明是here.第1步:安装OCaml。我已经从here安装了Windows版本.第1b步:我相信第1步安装了Gtk等。第2b步:运行:./configure--prefixC:/windows/path/with/direct/slash&&make&&m

c - PsSetCreateProcessNotifyRoutine 回调

进程的主线程是在创建后立即开始执行,还是在回调例程完成后开始执行? 最佳答案 这似乎没有记录,这意味着不能保证线程不会在回调例程返回之前开始执行。但是,CreateProcessNotifyEx的文档常规说:Foranewprocess,theCreateProcessNotifyExroutineiscalledaftertheinitialthreadiscreated,butbeforethethreadbeginsrunning.Thedrivercancausetheprocess-creationoperationtof